package org.cardcopier.file;

import junit.framework.TestCase;

public class ByteSizeFormatterTest extends TestCase {

	public void testCanFormatZeroBytes() {
		String value = new ByteSizeFormatter().format(0);
		assertEquals("0 B", value);
	}
	
	public void testFormatsValueLessThanHalfAKiloByteAsZero() {
		String value = new ByteSizeFormatter().format(400);
		assertEquals("400 B", value);
	}

	public void testFormats1024BytesInBytes() {
		String value = new ByteSizeFormatter().format(1024);
		assertEquals("1,024 B", value);
	}

	public void testFormatsMoreThan1024BytesInKiloBytes() {
		String value = new ByteSizeFormatter().format(1025);
		assertEquals("1 KB", value);
	}

        public void testFormatsWith2DecimalPlacesByDefault() {
		String value = new ByteSizeFormatter().format(1254);
		assertEquals("1.22 KB", value);
	}

	public void testFormatsWithMaxScale() {
		String value = new ByteSizeFormatter(ByteSizeFormatter.Scale.KB, 0).format(2000000000);
		assertEquals("1,953,125 KB", value);
	}

        public void testFormatsLargeValuesInGigaBytes() {
		String value = new ByteSizeFormatter().format(2000000000);
		assertEquals("1.86 GB", value);
	}
}
